{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 决策树"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 决策树的训练和可视化"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "pycharm": {
     "is_executing": true
    }
   },
   "outputs": [],
   "source": [
    "# Common imports\n",
    "import numpy as np\n",
    "import os\n",
    "\n",
    "# to make this notebook's output stable across runs\n",
    "np.random.seed(42)\n",
    "\n",
    "# To plot pretty figures\n",
    "%matplotlib inline\n",
    "import matplotlib as mpl\n",
    "import matplotlib.pyplot as plt\n",
    "mpl.rc('axes', labelsize=14)\n",
    "mpl.rc('xtick', labelsize=12)\n",
    "mpl.rc('ytick', labelsize=12)\n",
    "\n",
    "# Where to save the figures\n",
    "PROJECT_ROOT_DIR = \".\"\n",
    "CHAPTER_ID = \"decision_trees\"\n",
    "\n",
    "def image_path(fig_id):\n",
    "    return os.path.join(PROJECT_ROOT_DIR, \"images\", CHAPTER_ID, fig_id)\n",
    "\n",
    "def save_fig(fig_id, tight_layout=True):\n",
    "    print(\"Saving figure\", fig_id)\n",
    "    if tight_layout:\n",
    "        plt.tight_layout()\n",
    "    plt.savefig(image_path(fig_id) + \".png\", format='png', dpi=300)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "pycharm": {
     "is_executing": true
    }
   },
   "outputs": [],
   "source": [
    "from sklearn.datasets import load_iris\n",
    "from sklearn.tree import DecisionTreeClassifier"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "在我们熟知的鸢尾花数据集上进行一个决策树分类器的训练"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "pycharm": {
     "is_executing": true
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "DecisionTreeClassifier(max_depth=2)"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "iris = load_iris()\n",
    "X = iris.data[:, 2:] # petal length and width \n",
    "y = iris.target\n",
    "tree_clf = DecisionTreeClassifier(max_depth=2)\n",
    "tree_clf.fit(X, y)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "你可以通过使用export_graphviz()方法，通过生成一个叫做iris_tree.dot的图形定义文件将一个训练好的决策树模型可视化"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "pycharm": {
     "is_executing": true
    }
   },
   "outputs": [
    {
     "ename": "FileNotFoundError",
     "evalue": "[Errno 2] No such file or directory: '.\\\\images\\\\decision_trees\\\\iris_tree.dot'",
     "output_type": "error",
     "traceback": [
      "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
      "\u001b[1;31mFileNotFoundError\u001b[0m                         Traceback (most recent call last)",
      "\u001b[1;32m<ipython-input-4-3690be2c435a>\u001b[0m in \u001b[0;36m<module>\u001b[1;34m\u001b[0m\n\u001b[0;32m      6\u001b[0m         \u001b[0mclass_names\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0miris\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mtarget_names\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m      7\u001b[0m         \u001b[0mrounded\u001b[0m \u001b[1;33m=\u001b[0m \u001b[1;32mTrue\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m----> 8\u001b[1;33m         \u001b[0mfilled\u001b[0m \u001b[1;33m=\u001b[0m \u001b[1;32mTrue\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m      9\u001b[0m )\n",
      "\u001b[1;32m~\\.conda\\envs\\MachineLearning\\lib\\site-packages\\sklearn\\utils\\validation.py\u001b[0m in \u001b[0;36minner_f\u001b[1;34m(*args, **kwargs)\u001b[0m\n\u001b[0;32m     70\u001b[0m                           FutureWarning)\n\u001b[0;32m     71\u001b[0m         \u001b[0mkwargs\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mupdate\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m{\u001b[0m\u001b[0mk\u001b[0m\u001b[1;33m:\u001b[0m \u001b[0marg\u001b[0m \u001b[1;32mfor\u001b[0m \u001b[0mk\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0marg\u001b[0m \u001b[1;32min\u001b[0m \u001b[0mzip\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0msig\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mparameters\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0margs\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m}\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m---> 72\u001b[1;33m         \u001b[1;32mreturn\u001b[0m \u001b[0mf\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m     73\u001b[0m     \u001b[1;32mreturn\u001b[0m \u001b[0minner_f\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m     74\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n",
      "\u001b[1;32m~\\.conda\\envs\\MachineLearning\\lib\\site-packages\\sklearn\\tree\\_export.py\u001b[0m in \u001b[0;36mexport_graphviz\u001b[1;34m(decision_tree, out_file, max_depth, feature_names, class_names, label, filled, leaves_parallel, impurity, node_ids, proportion, rotate, rounded, special_characters, precision)\u001b[0m\n\u001b[0;32m    767\u001b[0m     \u001b[1;32mtry\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m    768\u001b[0m         \u001b[1;32mif\u001b[0m \u001b[0misinstance\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mout_file\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mstr\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 769\u001b[1;33m             \u001b[0mout_file\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mopen\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mout_file\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;34m\"w\"\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mencoding\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;34m\"utf-8\"\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m    770\u001b[0m             \u001b[0mown_file\u001b[0m \u001b[1;33m=\u001b[0m \u001b[1;32mTrue\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m    771\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n",
      "\u001b[1;31mFileNotFoundError\u001b[0m: [Errno 2] No such file or directory: '.\\\\images\\\\decision_trees\\\\iris_tree.dot'"
     ]
    }
   ],
   "source": [
    "from sklearn.tree import export_graphviz\n",
    "export_graphviz(\n",
    "        tree_clf,\n",
    "        out_file = image_path(\"iris_tree.dot\"),\n",
    "        feature_names = iris.feature_names[2:],\n",
    "        class_names = iris.target_names,\n",
    "        rounded = True,\n",
    "        filled = True\n",
    ")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {
    "pycharm": {
     "is_executing": true
    }
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "C:\\Users\\dongc\\.conda\\envs\\MachineLearning\\lib\\site-packages\\ipykernel_launcher.py:10: UserWarning: The following kwargs were not used by contour: 'linewidth'\n",
      "  # Remove the CWD from sys.path while we load stuff.\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 576x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "from matplotlib.colors import ListedColormap\n",
    "\n",
    "def plot_decision_boundary(clf, X, y, axes=[0, 7.5, 0, 3], iris=True, legend=False, plot_training=True):\n",
    "    x1s = np.linspace(axes[0], axes[1], 100)\n",
    "    x2s = np.linspace(axes[2], axes[3], 100)\n",
    "    x1, x2 = np.meshgrid(x1s, x2s)\n",
    "    X_new = np.c_[x1.ravel(), x2.ravel()]\n",
    "    y_pred = clf.predict(X_new).reshape(x1.shape)\n",
    "    custom_cmap = ListedColormap(['#fafab0','#9898ff','#a0faa0'])\n",
    "    plt.contourf(x1, x2, y_pred, alpha=0.3, cmap=custom_cmap, linewidth=10)\n",
    "    if not iris:\n",
    "        custom_cmap2 = ListedColormap(['#7d7d58','#4c4c7f','#507d50'])\n",
    "        plt.contour(x1, x2, y_pred, cmap=custom_cmap2, alpha=0.8)\n",
    "    if plot_training:\n",
    "        plt.plot(X[:, 0][y==0], X[:, 1][y==0], \"yo\", label=\"Iris-Setosa\")\n",
    "        plt.plot(X[:, 0][y==1], X[:, 1][y==1], \"bs\", label=\"Iris-Versicolor\")\n",
    "        plt.plot(X[:, 0][y==2], X[:, 1][y==2], \"g^\", label=\"Iris-Virginica\")\n",
    "        plt.axis(axes)\n",
    "    if iris:\n",
    "        plt.xlabel(\"Petal length\", fontsize=14)\n",
    "        plt.ylabel(\"Petal width\", fontsize=14)\n",
    "    else:\n",
    "        plt.xlabel(r\"$x_1$\", fontsize=18)\n",
    "        plt.ylabel(r\"$x_2$\", fontsize=18, rotation=0)\n",
    "    if legend:\n",
    "        plt.legend(loc=\"lower right\", fontsize=14)\n",
    "\n",
    "plt.figure(figsize=(8, 4))\n",
    "plot_decision_boundary(tree_clf, X, y)\n",
    "plt.plot([2.45, 2.45], [0, 3], \"k-\", linewidth=2)\n",
    "plt.plot([2.45, 7.5], [1.75, 1.75], \"k--\", linewidth=2)\n",
    "plt.plot([4.95, 4.95], [0, 1.75], \"k:\", linewidth=2)\n",
    "plt.plot([4.85, 4.85], [1.75, 3], \"k:\", linewidth=2)\n",
    "plt.text(1.40, 1.0, \"Depth=0\", fontsize=15)\n",
    "plt.text(3.2, 1.80, \"Depth=1\", fontsize=13)\n",
    "plt.text(4.05, 0.5, \"(Depth=2)\", fontsize=11)\n",
    "\n",
    "# save_fig(\"decision_tree_decision_boundaries_plot\")\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "显示了决策树的决策边界。粗的垂直线代表根节点（深度为 0）的决定边界：花瓣长度为 2.45 厘米。由于左侧区域是纯的（只有 Iris-Setosa），所以不能再进一步分裂。然而，右边的区域是不纯的，所以深度为 1 的右边节点在花瓣宽度为 1.75 厘米处分裂（用虚线表示）。又由于max_depth设置为 2，决策树在那里停了下来。但是，如果将max_depth设置为 3，两个深度为 2 的节点，每个都将会添加另一个决策边界（用虚线表示）。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 开始预测"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Gini impurity\n",
    "\n",
    "$G_i = 1 - \\sum _{k=1}^{n}P_{i, k}^2$"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 估计分类概率"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "决策树还可以估计某个实例属于特定类k的概率：首先遍历树来查找此实例的叶节点，然后它返回此节点中类k的训练实例的比例;\n",
    "\n",
    "例如，假设你发现了一个花瓣长 5 厘米，宽 1.5 厘米的花朵。相应的叶节点是深度为 2 的左节点，因此决策树应该输出以下概率：Iris-Setosa 为 0%（0/54），Iris-Versicolor 为 90.7%（49/54），Iris-Virginica 为 9.3%（5/54）。当然，如果你要求它预测具体的类，它应该输出 Iris-Versicolor（类别 1），因为它具有最高的概率。我们了测试一下："
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[0.        , 0.90740741, 0.09259259]])"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "tree_clf.predict_proba([[5, 1.5]])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([1])"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "tree_clf.predict([[5, 1.5]])"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "完美！请注意，估计概率在任何地方都是相同的， 除了图 6-2 中右下角的矩形部分，例如花瓣长 6 厘米和宽 1.5 厘米（尽管在这种情况下它看起来很可能是 Iris-Virginica）"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## CART 训练算法"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Scikit-Learn 用分裂回归树（Classification And Regression Tree，简称 CART）算法训练决策树（也叫“增长树”）。这种算法思想真的非常简单：\n",
    "\n",
    "首先使用单个特征$k$和阈值 $t_k$（例如，“花瓣长度≤2.45cm”）将训练集分成两个子集。它如何选择$k$和 $t_k$ 呢？它寻找到能够产生最纯粹的子集一对 $(k, t_k)$，然后通过子集大小加权计算。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 正则化超参数"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "决策树几乎不对训练数据做任何假设（于此相反的是线性回归等模型，这类模型通常会假设数据是符合线性关系的）。\n",
    "\n",
    "如果不添加约束，树结构模型通常将根据训练数据调整自己，使自身能够很好的拟合数据，而这种情况下大多数会导致模型过拟合。\n",
    "\n",
    "这一类的模型通常会被称为非参数模型，这不是因为它没有任何参数（通常也有很多），而是因为在训练之前没有确定参数的具体数量，所以模型结构可以根据数据的特性自由生长。\n",
    "\n",
    "于此相反的是，像线性回归这样的参数模型有事先设定好的参数数量，所以自由度是受限的，这就减少了过拟合的风险（但是增加了欠拟合的风险）。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "DecisionTreeClassifier(max_depth=2, random_state=40)"
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "not_widest_versicolor = (X[:, 1]!=1.8) | (y==2)\n",
    "X_tweaked = X[not_widest_versicolor]\n",
    "y_tweaked = y[not_widest_versicolor]\n",
    "\n",
    "tree_clf_tweaked = DecisionTreeClassifier(max_depth=2, random_state=40)\n",
    "tree_clf_tweaked.fit(X_tweaked, y_tweaked)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "显示了对moons数据集（在第 5 章介绍过）进行训练生成的两个决策树模型，左侧的图形对应的决策树使用默认超参数生成（没有限制生长条件），右边的决策树模型设置为min_samples_leaf=4。很明显，左边的模型过拟合了，而右边的模型泛用性更好"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "C:\\Users\\dongc\\.conda\\envs\\MachineLearning\\lib\\site-packages\\ipykernel_launcher.py:10: UserWarning: The following kwargs were not used by contour: 'linewidth'\n",
      "  # Remove the CWD from sys.path while we load stuff.\n",
      "C:\\Users\\dongc\\.conda\\envs\\MachineLearning\\lib\\site-packages\\ipykernel_launcher.py:10: UserWarning: The following kwargs were not used by contour: 'linewidth'\n",
      "  # Remove the CWD from sys.path while we load stuff.\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 792x288 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "from sklearn.datasets import make_moons\n",
    "Xm, ym = make_moons(n_samples=100, noise=0.25, random_state=53)\n",
    "\n",
    "deep_tree_clf1 = DecisionTreeClassifier(random_state=42)\n",
    "deep_tree_clf2 = DecisionTreeClassifier(min_samples_leaf=4, random_state=42)\n",
    "deep_tree_clf1.fit(Xm, ym)\n",
    "deep_tree_clf2.fit(Xm, ym)\n",
    "\n",
    "plt.figure(figsize=(11, 4))\n",
    "plt.subplot(121)\n",
    "plot_decision_boundary(deep_tree_clf1, Xm, ym, axes=[-1.5, 2.5, -1, 1.5], iris=False)\n",
    "plt.title(\"No restrictions\", fontsize=16)\n",
    "plt.subplot(122)\n",
    "plot_decision_boundary(deep_tree_clf2, Xm, ym, axes=[-1.5, 2.5, -1, 1.5], iris=False)\n",
    "plt.title(\"min_samples_leaf = {}\".format(deep_tree_clf2.min_samples_leaf), fontsize=14)\n",
    "\n",
    "# save_fig(\"min_samples_leaf_plot\")\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "决策时的主要问题是它对训练数据的微小变化非常敏感，举例来说，我们仅仅从鸢尾花训练数据中将最宽的 Iris-Versicolor 拿掉（花瓣长 4.8 厘米，宽 1.8 厘米），然后重新训练决策树模型，你可能就会得到图 6-8 中的模型。正如我们看到的那样，决策树有了非常大的变化（原来的如图 6-2），事实上，由于 Scikit-Learn 的训练算法是非常随机的，即使是相同的训练数据你也可能得到差别很大的模型（除非你设置了随机数种子）。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 回归"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Quadratic training set + noise\n",
    "np.random.seed(42)\n",
    "m = 200\n",
    "X = np.random.rand(m, 1)\n",
    "y = 4 * (X - 0.5) ** 2\n",
    "y = y + np.random.randn(m, 1) / 10"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "决策树也能够执行回归任务，让我们使用 Scikit-Learn 的DecisionTreeRegressor类构建一个回归树，让我们用max_depth = 2在具有噪声的二次项数据集上进行训练"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "DecisionTreeRegressor(max_depth=2, random_state=42)"
      ]
     },
     "execution_count": 14,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from sklearn.tree import DecisionTreeRegressor\n",
    "\n",
    "tree_reg = DecisionTreeRegressor(max_depth=2, random_state=42)\n",
    "tree_reg.fit(X, y)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "这棵树看起来非常类似于你之前建立的分类树，它的主要区别在于，它不是预测每个节点中的样本所属的分类，而是预测一个具体的数值。例如，假设想对 x_1 = 0.6 的新实例进行预测。从根开始遍历树，最终到达预测值等于 0.1106 的叶节点。该预测仅仅是与该叶节点相关的 110 个训练实例的平均目标值。而这个预测结果在对应的 110 个实例上的均方误差（MSE）等于 0.0151。\n",
    "\n",
    "在图 6-5 的左侧显示的是模型的预测结果，如果你将max_depth=3设置为 3，模型就会如 6-5 图右侧显示的那样.注意每个区域的预测值总是该区域中实例的平均目标值。算法以一种使大多数训练实例尽可能接近该预测值的方式分割每个区域。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 792x288 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "from sklearn.tree import DecisionTreeRegressor\n",
    "\n",
    "tree_reg1 = DecisionTreeRegressor(random_state=42, max_depth=2)\n",
    "tree_reg2 = DecisionTreeRegressor(random_state=42, max_depth=3)\n",
    "tree_reg1.fit(X, y)\n",
    "tree_reg2.fit(X, y)\n",
    "\n",
    "def plot_regression_predictions(tree_reg, X, y, axes=[0, 1, -0.2, 1], ylabel=\"$y$\"):\n",
    "    x1 = np.linspace(axes[0], axes[1], 500).reshape(-1, 1)\n",
    "    y_pred = tree_reg.predict(x1)\n",
    "    plt.axis(axes)\n",
    "    plt.xlabel(\"$x_1$\", fontsize=18)\n",
    "    if ylabel:\n",
    "        plt.ylabel(ylabel, fontsize=18, rotation=0)\n",
    "    plt.plot(X, y, \"b.\")\n",
    "    plt.plot(x1, y_pred, \"r.-\", linewidth=2, label=r\"$\\hat{y}$\")\n",
    "\n",
    "plt.figure(figsize=(11, 4))\n",
    "plt.subplot(121)\n",
    "plot_regression_predictions(tree_reg1, X, y)\n",
    "for split, style in ((0.1973, \"k-\"), (0.0917, \"k--\"), (0.7718, \"k--\")):\n",
    "    plt.plot([split, split], [-0.2, 1], style, linewidth=2)\n",
    "plt.text(0.21, 0.65, \"Depth=0\", fontsize=15)\n",
    "plt.text(0.01, 0.2, \"Depth=1\", fontsize=13)\n",
    "plt.text(0.65, 0.8, \"Depth=1\", fontsize=13)\n",
    "plt.legend(loc=\"upper center\", fontsize=18)\n",
    "plt.title(\"max_depth=2\", fontsize=14)\n",
    "\n",
    "plt.subplot(122)\n",
    "plot_regression_predictions(tree_reg2, X, y, ylabel=None)\n",
    "for split, style in ((0.1973, \"k-\"), (0.0917, \"k--\"), (0.7718, \"k--\")):\n",
    "    plt.plot([split, split], [-0.2, 1], style, linewidth=2)\n",
    "for split in (0.0458, 0.1298, 0.2873, 0.9040):\n",
    "    plt.plot([split, split], [-0.2, 1], \"k:\", linewidth=1)\n",
    "plt.text(0.3, 0.5, \"Depth=2\", fontsize=13)\n",
    "plt.title(\"max_depth=3\", fontsize=14)\n",
    "\n",
    "# save_fig(\"tree_regression_plot\")\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "ename": "NameError",
     "evalue": "name 'export_graphviz' is not defined",
     "output_type": "error",
     "traceback": [
      "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
      "\u001b[1;31mNameError\u001b[0m                                 Traceback (most recent call last)",
      "\u001b[1;32m<ipython-input-16-127f134e6f02>\u001b[0m in \u001b[0;36m<module>\u001b[1;34m\u001b[0m\n\u001b[1;32m----> 1\u001b[1;33m export_graphviz(\n\u001b[0m\u001b[0;32m      2\u001b[0m         \u001b[0mtree_reg1\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m      3\u001b[0m         \u001b[0mout_file\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mimage_path\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m\"regression_tree.dot\"\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m      4\u001b[0m         \u001b[0mfeature_names\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;33m[\u001b[0m\u001b[1;34m\"x1\"\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m      5\u001b[0m         \u001b[0mrounded\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;32mTrue\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
      "\u001b[1;31mNameError\u001b[0m: name 'export_graphviz' is not defined"
     ]
    }
   ],
   "source": [
    "export_graphviz(\n",
    "        tree_reg1,\n",
    "        out_file=image_path(\"regression_tree.dot\"),\n",
    "        feature_names=[\"x1\"],\n",
    "        rounded=True,\n",
    "        filled=True\n",
    "    )"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "CART 算法的工作方式与之前处理分类模型基本一样，不同之处在于，现在不再以最小化不纯度的方式分割训练集，而是试图以最小化 MSE 的方式分割训练集。\n",
    "\n",
    "公式 6-4 显示了成本函数，该算法试图最小化这个成本函数。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "和处理分类任务时一样，决策树在处理回归问题的时候也容易过拟合。如果不添加任何正则化（默认的超参数），你就会得到图 6-6 左侧的预测结果，显然，过度拟合的程度非常严重。而当我们设置了min_samples_leaf = 10，相对就会产生一个更加合适的模型了，就如图 6-6 所示的那样。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 792x288 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "tree_reg1 = DecisionTreeRegressor(random_state=42)\n",
    "tree_reg2 = DecisionTreeRegressor(random_state=42, min_samples_leaf=10)\n",
    "tree_reg1.fit(X, y)\n",
    "tree_reg2.fit(X, y)\n",
    "\n",
    "x1 = np.linspace(0, 1, 500).reshape(-1, 1)\n",
    "y_pred1 = tree_reg1.predict(x1)\n",
    "y_pred2 = tree_reg2.predict(x1)\n",
    "\n",
    "plt.figure(figsize=(11, 4))\n",
    "\n",
    "plt.subplot(121)\n",
    "plt.plot(X, y, \"b.\")\n",
    "plt.plot(x1, y_pred1, \"r.-\", linewidth=2, label=r\"$\\hat{y}$\")\n",
    "plt.axis([0, 1, -0.2, 1.1])\n",
    "plt.xlabel(\"$x_1$\", fontsize=18)\n",
    "plt.ylabel(\"$y$\", fontsize=18, rotation=0)\n",
    "plt.legend(loc=\"upper center\", fontsize=18)\n",
    "plt.title(\"No restrictions\", fontsize=14)\n",
    "\n",
    "plt.subplot(122)\n",
    "plt.plot(X, y, \"b.\")\n",
    "plt.plot(x1, y_pred2, \"r.-\", linewidth=2, label=r\"$\\hat{y}$\")\n",
    "plt.axis([0, 1, -0.2, 1.1])\n",
    "plt.xlabel(\"$x_1$\", fontsize=18)\n",
    "plt.title(\"min_samples_leaf={}\".format(tree_reg2.min_samples_leaf), fontsize=14)\n",
    "\n",
    "# save_fig(\"tree_regression_regularization_plot\")\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 不稳定性"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "C:\\Users\\dongc\\.conda\\envs\\MachineLearning\\lib\\site-packages\\ipykernel_launcher.py:10: UserWarning: The following kwargs were not used by contour: 'linewidth'\n",
      "  # Remove the CWD from sys.path while we load stuff.\n",
      "C:\\Users\\dongc\\.conda\\envs\\MachineLearning\\lib\\site-packages\\ipykernel_launcher.py:10: UserWarning: The following kwargs were not used by contour: 'linewidth'\n",
      "  # Remove the CWD from sys.path while we load stuff.\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 792x288 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "np.random.seed(6)\n",
    "Xs = np.random.rand(100, 2) - 0.5\n",
    "ys = (Xs[:, 0] > 0).astype(np.float32) * 2\n",
    "\n",
    "angle = np.pi / 4\n",
    "rotation_matrix = np.array([[np.cos(angle), -np.sin(angle)], [np.sin(angle), np.cos(angle)]])\n",
    "Xsr = Xs.dot(rotation_matrix)\n",
    "\n",
    "tree_clf_s = DecisionTreeClassifier(random_state=42)\n",
    "tree_clf_s.fit(Xs, ys)\n",
    "tree_clf_sr = DecisionTreeClassifier(random_state=42)\n",
    "tree_clf_sr.fit(Xsr, ys)\n",
    "\n",
    "plt.figure(figsize=(11, 4))\n",
    "plt.subplot(121)\n",
    "plot_decision_boundary(tree_clf_s, Xs, ys, axes=[-0.7, 0.7, -0.7, 0.7], iris=False)\n",
    "plt.subplot(122)\n",
    "plot_decision_boundary(tree_clf_sr, Xsr, ys, axes=[-0.7, 0.7, -0.7, 0.7], iris=False)\n",
    "\n",
    "# save_fig(\"sensitivity_to_rotation_plot\")\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "它很容易理解和解释，易于使用且功能丰富而强大。然而，它也有一些限制，首先，你可能已经注意到了，决策树很喜欢设定正交化的决策边界，（所有边界都是和某一个轴相垂直的），这使得它对训练数据集的旋转很敏感，例如图 6-7 显示了一个简单的线性可分数据集。在左图中，决策树可以轻易的将数据分隔开，但是在右图中，当我们把数据旋转了 45° 之后，决策树的边界看起来变的格外复杂。尽管两个决策树都完美的拟合了训练数据，右边模型的泛化能力很可能非常差。\n",
    "\n",
    "解决这个难题的一种方式是使用 PCA 主成分分析（第八章），这样通常能使训练结果变得更好一些"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "C:\\Users\\dongc\\.conda\\envs\\MachineLearning\\lib\\site-packages\\ipykernel_launcher.py:10: UserWarning: The following kwargs were not used by contour: 'linewidth'\n",
      "  # Remove the CWD from sys.path while we load stuff.\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 576x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.figure(figsize=(8, 4))\n",
    "plot_decision_boundary(tree_clf_tweaked, X_tweaked, y_tweaked, legend=False)\n",
    "plt.plot([0, 7.5], [0.8, 0.8], \"k-\", linewidth=2)\n",
    "plt.plot([0, 7.5], [1.75, 1.75], \"k--\", linewidth=2)\n",
    "plt.text(1.0, 0.9, \"Depth=0\", fontsize=15)\n",
    "plt.text(1.0, 1.80, \"Depth=1\", fontsize=13)\n",
    "\n",
    "# save_fig(\"decision_tree_instability_plot\")\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "更加通俗的讲，决策时的主要问题是它对训练数据的微小变化非常敏感，举例来说，我们仅仅从鸢尾花训练数据中将最宽的 Iris-Versicolor 拿掉（花瓣长 4.8 厘米，宽 1.8 厘米），然后重新训练决策树模型，你可能就会得到图 6-8 中的模型。正如我们看到的那样，决策树有了非常大的变化（原来的如图 6-2），事实上，由于 Scikit-Learn 的训练算法是非常随机的，即使是相同的训练数据你也可能得到差别很大的模型（除非你设置了随机数种子）"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.7"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
